package com.qumitech.visualnovel.datasource.console;

import com.qumitech.visualnovel.model.dao.console.ChannelDiamondDataDO;
import com.qumitech.visualnovel.pubdef.dto.asa.asaDTO;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;

public interface ChannelDiamondDataDOMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(ChannelDiamondDataDO record);

    int insertSelective(ChannelDiamondDataDO record);

    ChannelDiamondDataDO selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(ChannelDiamondDataDO record);

    int updateByPrimaryKey(ChannelDiamondDataDO record);

    List<ChannelDiamondDataDO> getList(@Param("startTime") String startTime,
                                       @Param("endTime") String endTime,
                                       @Param("channelList") List<String> channelList,
                                       @Param("offset") int offset,
                                       @Param("pageSize") int pageSize,
                                       @Param("orderType")String orderType,
                                       @Param("orderBy")String orderBy);


    int getCount(@Param("startTime") String startTime,
                 @Param("endTime") String endTime,
                 @Param("channelList") List<String> channelList);

    List<ChannelDiamondDataDO> getLaunchDiamondList(@Param("targetDate") String targetDate,
                                       @Param("targetChannel") String targetChannel);


    List<asaDTO> asaDataList(@Param("keywordId") String keywordId,
                             @Param("keywordName") String keywordName,
                             @Param("startTime") String startTime,
                             @Param("endTime") String endTime,
                             @Param("filter") Integer filter,
                             @Param("orderType")String orderType,
                             @Param("orderBy")String orderBy,
                             @Param("offset") int offset,
                             @Param("limit") int limit);

    int asaDataCount(@Param("keywordId") String keywordId,
                     @Param("keywordName") String keywordName,
                     @Param("startTime") String startTime,
                     @Param("endTime") String endTime,
                     @Param("filter") Integer filter);

    List<asaDTO> asaDataListSum(@Param("keywordId") String keywordId,
                     @Param("keywordName") String keywordName,
                     @Param("startTime") String startTime,
                     @Param("endTime") String endTime,
                     @Param("filter") Integer filter);

}